/**
 * Created with IntelliJ IDEA.
 * Description:数据类型
 * User: liangyuanzhang
 * Date: 2024-11-24
 * Time: 11:13
 */
public class Test {
    //字符串变整数
    public static void main(String[] args) {
        String s = "123";
//        int a = Integer.valueOf(s);
        int a = Integer.parseInt(s);
        System.out.println(a+1);
    }
    //把整数编程字符串
    public static void main14(String[] args) {
        int a = 123;
        String str = a+"";
        System.out.println(str);
        System.out.println("======");

        String str1 = String.valueOf(a);//把a转换成字符串
        System.out.println(str1);

    }
    public static void main13(String[] args) {
        int a = 10;
        //a==10
        System.out.println("a == " + a);

        int c = 20;
        System.out.println("a == " + a + c);//只是单纯的拼接
        //所以只要是字符串去拼接的，整体就是字符串

        //那么怎么让他输出30呢？
        //可有加（）
        System.out.println("a == " + (a + c));

        //System.out.printf("a = %d\n",a);//C语言的写法也可以
        System.out.println(a + c +" = a + c");
/*        一开始是整形，所以第一个加号会计算求和
        第二个加号的时候是拼接*/
    }
    public static void main12(String[] args) {
        String str = "Hello ";
        System.out.println(str);
        String str2 = "World";
        System.out.println(str+str2);
        /*
        使用 + 可以对字符串进行拼接
         */
        System.out.println(str.length());//求字符串长度
        System.out.println(str2.length());
        System.out.println(str.charAt(0));

    }
    public static void main11(String[] args) {
        byte a = 10;
        byte b = 20;
//        byte c = a + b;
        int c = a + b;
        /*
        a 和 b 都是小于4个字节的数据
        参加运算的时候 会先提升为4个字节
        然后再进行运算
         */
        System.out.println(c);
    }
    public static void main10(String[] args) {
        int a = 10;//4个字节
        long b = 20;//8个字节
        //a提升为long long类型 和 long类型 进行运算 结果就是long类型
//        int c = a + b;
        long c = a + b;
        System.out.println(c);
    }
    public static void main9(String[] args) {
        int a = 10;
        long b = 100L;
        b = a;
        System.out.println(b);
//      a = b;
        //a = (int)b;此时 使用（数据类型） 进行了强制类型转换
        /*
        编译不会报错
        但是 他是一颗雷 可能在某种情况下 会爆炸！！！
         */
        byte c = 10;
        int d = 128;
        c = (byte)d;//精度的丢失 --> 1 - 127 - -128 - -1 的圆球
        System.out.println(c);

    }
    public static void main8(String[] args) {
        // 没有明确说明 大小是多少字节 ？
        boolean b = true;//包装类型Boolean
        System.out.println(b);
    }
    public static void main7(String[] args) {
        //char 类型是 2个字节 unicode字符集
        /*
        Java当中 布尔类型只有2个取值。 true或者false
         */
        char ch1 = 'a';
        char ch2 = '高';
        System.out.println(ch1);
        System.out.println(ch2);
        //包装类型
        Character c = 'p';
        System.out.println(c);
    }
    public static void main6(String[] args) {
/*        double d = 12.5;
        System.out.println(d);*/
/*        double a = 1;
        double b = 2;
        System.out.println(a / b);*/

        double num = 1.1; //8个字节
        System.out.println(num * num);//小数是不能精确表示每一位的
                                      // 他只能说精确表示小数后几位
        float f = 12.5F;//4个字节 + F是因为Java默认是double
        System.out.println(f);
    }
    public static void main5(String[] args) {
        /*
        字节型 byte 1个字节
        char
        -2^7    2^7-1
         */
        byte a = 10;
        System.out.println(a);
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);
    }

    public static void main4(String[] args) {
        /*
        短整型 short 2个字节
        -2^15   2^15-1
         */
        short sh = 10;
        System.out.println(sh);
        System.out.println(Short.MIN_VALUE);
        System.out.println(Short.MAX_VALUE);
    }
    public static void main3(String[] args) {
        /*
        长整形  long 8个字节
        -9223372036854775808
        9223372036854775807
         */
        long a = 10L;//大写的L或者小写的l表示
        System.out.println(a);
        System.out.println(Long.MIN_VALUE);
        System.out.println(Long.MAX_VALUE);
    }
    public static void main2(String[] args) {
        /*
        Java里面必须初始化
        不然会报错
         */
        int c;//定义
        c = 19;//初始化
        System.out.println(c);
        //数据类型 + 变量
        /*
        4个字节    真正意义上表示数值的只有31个比特位
         */
        int a = 10;
        System.out.println(a);
        System.out.println(Integer.MIN_VALUE);
        //Integer - 包装类
        //int 的 puls版本
        System.out.println(Integer.MAX_VALUE);

        Integer b = 100;
        System.out.println(b);
        /*
        如果进行变量赋值的时候，字面值超过了可存储的范围，编译也会报错！
         */
        int d =2147483647;
    }
    public static void main1(String[] args) {
        System.out.println(10);
        //const
        final int SIZE = 10;//final一修饰的变量就变成常量了
//        a = 9;
//        a = 8;
//        System.out.println(a);
    }
}
/*
不管你是多少系统，Java当中的数据类型占用的字节数是一定的！！
优点：可以移植性高

 */